package com.liqi.frame.comm.service;


import com.liqi.frame.comm.po.Permission;

import java.util.List;
import java.util.Set;

/**
 * 权限服务接口
 * @author liqi on 2017/8/2.
 */
public interface PermissionService {

    /**
     * 根据用户ID获取权限的Set集合
     * @param userId 用户id
     * @return 权限集合
     */
    Set<String> findPermissionByUserId(String userId);

    /**
     * 插入权限信息
     * @param id 权限id
     * @param permissionKey 权限关键字
     * @param permissionName 权限名称
     * @param permissionType 权限类型
     * @param parentId 父权限id
     * @param level 级别
     * @param comment 说明
     * @param orderId 序号
     * @param target 菜单打开方式
     * @param href 菜单链接
     * @return 1：成功
     */
    int insertPermission(String id,
                         String permissionKey,
                         String permissionName,
                         String permissionType,
                         String parentId,
                         Integer level,
                         String comment,
                         Float orderId,
                         String target,
                         String href);

    /**
     * 按id修改权限信息
     * @param id
     * @param permissionKey
     * @param permissionName
     * @param permissionType
     * @param parentId
     * @param level
     * @param comment
     * @param orderId
     * @param target
     * @param href
     * @return
     */
    int updatePermission(String id,
                         String permissionKey,
                         String permissionName,
                         String permissionType,
                         String parentId,
                         Integer level,
                         String comment,
                         Float orderId,
                         String target,
                         String href);

    int deletePermissionById(String id);

    List<Permission> getPermissionListByRoleId(String roleId);

    List<Permission> getPermissionListByUserId(String userId);

    /**
     * 按数据id批量删除权限数据
     * @param ids
     * @return
     */
    int deletePermissionsByIds(String[] ids);

    int deleteMenuListByParentId(String parentId);
}
